.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.TH UNGETWC 3  2021-03-22 "GNU" "Linux Programmer's Manual"
.SH NAME
ungetwc \- push back a wide character onto a FILE stream
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.PP
.BI "wint_t ungetwc(wint_t " wc ", FILE *" stream );
.fi
.SH DESCRIPTION
The
.BR ungetwc ()
function is the wide-character equivalent of the
.BR ungetc (3)
function.
It pushes back a wide character onto
.I stream
and returns it.
.PP
If
.I wc
is
.BR WEOF ,
it returns
.BR WEOF .
If
.I wc
is an invalid wide character,
it sets
.I errno
to
.B EILSEQ
and returns
.BR WEOF .
.PP
If
.I wc
is a valid wide character, it is pushed back onto the stream
and thus becomes available for future wide-character read operations.
The file-position indicator is decremented by one or more.
The end-of-file
indicator is cleared.
The backing storage of the file is not affected.
.PP
Note:
.I wc
need not be the last wide-character read from the stream;
it can be any other valid wide character.
.PP
If the implementation supports multiple push-back operations in a row, the
pushed-back wide characters will be read in reverse order; however, only one
level of push-back is guaranteed.
.SH RETURN VALUE
The
.BR ungetwc ()
function returns
.I wc
when successful, or
.B WEOF
upon
failure.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR ungetwc ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C99.
.SH NOTES
The behavior of
.BR ungetwc ()
depends on the
.B LC_CTYPE
category of the
current locale.
.SH SEE ALSO
.BR fgetwc (3)
.SH COLOPHON
This page is part of release 5.13 of the Linux
.I man-pages
project.
A description of the project,
information about reporting bugs,
and the latest version of this page,
can be found at
\%https://www.kernel.org/doc/man\-pages/.
